<?php if(! defined('HAS_POWER') ) exit('无权访问!');
/**
==============================================================================
 * Class CacheComponent GracePHP缓存类组件
 * @author 肖永标
 * @date 2014-12-09
==============================================================================
 */
 
class CacheComponent extends Component {

    /**
     * @var Object 缓存组件对象
     */
    private $handler;


    /** 缓存组件初始化
     * @throws Exception
     */
    public function __construct()
    {
        $type = Config::getItem('webCache.type');

        $class = ucfirst($type) . 'CacheComponent';

        $this->handler = new $class();
        $this->handler->init();
    }


    /** 设置一个缓存的键
     * @param string $key 键的名称
     * @param mixed $value 对应的值
     * @param string $other 其他设置
     * @param int $expire 存活时间
     * @return mixed
     */
    public function set($key, $value, $other=0, $expire=0)
    {
        return $this->handler->set($key, $value, $other, $expire);
    }


    /** 获取一个对应的键的值
     * @param string $key 键的名称
     * @return mixed
     */
    public function get($key)
    {
        return $this->handler->get($key);
    }


    /** 删除某一个键
     * @param string $key 键的名称
     * @return mixed
     */
    public function delete($key)
    {
        return $this->handler->delete($key);
    }


    /** 清空所有的缓存
     * @return mixed
     */
    public function flush()
    {
        return $this->handler->flush();
    }

    /** 是否能被控制器直接加载
     * @return bool
     */
    public function allowLoad()
    {
        return true;
    }
}